"""
回合制对战游戏
• 创建角色：名字、性别、血量、装备
• 战斗
• 装备-防弹衣
• 血量默认100
• 正常被攻击-10滴血
• 有防弹衣-5滴血

• 创建房间：
• 角色可加入房间
• 房间内的人可互打
• 房间上限2人
"""
import random #调用random模块

# 角色类
class User(object):
    def __init__(self,name,sex,blood=100): #初始化角色属性
        self.name = name
        self.sex = sex
        self.blood = blood
        self.room = None

    def bitle(self,opponent): # 战斗模块
        if self == opponent:
            print("不能攻击自己")
        else:
            if self.room == opponent.room:
                if self.blood <= 0:
                    print("GAME OVER！\n您的血量低于0，不能进行战斗")
                else:
                    if random.choice([0,1]) == 0: # 0代表无装备，1代表有装备
                        lose_blood = 10
                        print(f"{opponent.name}没有装备")
                    else:
                        lose_blood = 5  #有装备情况下受到的攻击伤害为5
                        print(f"{opponent.name}使用了装备")
                    opponent.blood -= lose_blood
                    print(f"{self.name}攻击了{opponent.name},{opponent.name}生命值减少{lose_blood}\n{self.name}当前生命值{self.blood},{opponent.name}当前生命值为{opponent.blood}")
                    if opponent.blood <= 0:
                        print(f"{opponent.name}GAME OVER，恭喜{self.name}Victory！")
                        exit()
            else:
                print("两位玩家不在同一房间，不能进行战斗")

class Room(object): # 房间类
    def __init__(self,name): # 初始化房间属性
        self.name = name
        self.role_list = [] # 房间角色表

    def useradd(self,user): # 角色加入房间模块
        if user.room == None:
            if len(self.role_list) < 2: # 保证一个房间最多两人
                self.role_list.append(user)
                user.room = self
                print(f"{user.name}成功进入{self.name}房间")
            else:
                print(f"{self.name}已满")
        else:
            print(f"{user.name}已加入{user.room.name}房间")

print("*"*20)
print('''
欢迎来都超斗罗！
（本游戏健康无害）
-->创建角色请输入：1
-->创建房间请输入：2
-->加入房间请输入：3
-->开始战斗请输入：4
-->退出游戏请输入：5
(提示：请玩家严格按照要求输入！)
     ''')
print("*"*20)
users = {} # 创建玩家和对手的关系
rooms = {} # 存放初始化实例
while True:
    opption = input("请输入您的选择：\n")
    if opption.isdigit():
        if int(opption) in range(1,6):
            opption = int(opption)
            if opption == 1:
                name,sex = input("请玩家输入创建角色的姓名与性别，并用空格分开:\n").split()
                users[name] = User(name,sex)
            elif opption == 2:
                room = input("请输入房间的名字:\n")
                rooms[room] = Room(room)
            elif opption == 3:
                print(f"超斗罗当前有角色{users.keys()},房间有{rooms.keys()}")
                user_role,user_room = input("请输入您要加入的角色和房间名，并用空格分隔:\n").split() #split()将输入的字符赋给2个变量
                rooms[user_room].useradd(users[user_role])
            elif opption == 4:
                while True:
                    game = random.choice([0,1])
                    if game == 0:
                        rooms[user_room].role_list[0].bitle(rooms[user_room].role_list[1])
                    else:
                        rooms[user_room].role_list[1].bitle(rooms[user_room].role_list[0])
        else:
            print("输入有误，请确认后重新输入(1-5选项)！")
    else:
        print("输入有误，请确认后重新输入！")